Bulk Insert详细用法参见Bulk Insert命令详细。
我的数据是从R写入CSV文件的,需要再从CSV文件导入到数据库里面。为什么需要这么麻烦呢,直接从R写入数据库不行吗,数据量大的时候还真不行,利用bulk insert适用于数据量特别大的情形。
解决步骤:
step1:设计数据表的列名和类型,数据表名称,主键,NULL约束等
step2:检查csv数据类型,因为在尝试过程中发现某些列的值为Inf,不能匹配到数据表的列类型(float),导致出错
step3:利用bulk insert语句将csv数据导入到数据库
测试中的sql脚本见下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| alter table [stock_data].[dbo].[test] alter COLUMN [OP] varchar(100) alter table [stock_data].[dbo].[test] alter COLUMN [Inv] varchar(100) BULK INSERT stock_data.dbo.test FROM 'I:\anqi\DataCollection\数据库衍生计算\ratio.csv' WITH ( FIELDTERMINATOR = ',', CHECK_CONSTRAINTS, FIRSTROW=2 ) update [stock_data].[dbo].[test] set OP=NULL where OP='Inf' alter table [stock_data].[dbo].[test] alter COLUMN [OP] float update [stock_data].[dbo].[test] set Inv=NULL where OP='Inf' alter table [stock_data].[dbo].[test] alter COLUMN Inv float
|